/**
 * 综合实例：数据维护(四合一)
 * 
 * @author XiongChun
 * @since 2010-11-20
 */
Ext.onReady(function() {
	var qForm = new Ext.form.FormPanel({
		region : 'north',
		title : '<span class="commoncss">查询条件<span>',
		collapsible : true,
		border : true,
		labelWidth : 90, // 标签宽度
		// frame : true, //是否渲染表单面板背景色
		labelAlign : 'right', // 标签对齐方式
		bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
		buttonAlign : 'center',
		height : 130,
		items : [{
					layout : 'column',
					border : false,
					items : [{
								columnWidth : .33,
								layout : 'form',
								labelWidth : 90, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [{
											fieldLabel : '项目编码',
											name : 'PRJ_NO',
											xtype : 'textfield', // 设置为数字输入框类型
											anchor : '100%'
										}, {
											fieldLabel : '工程费大于',
											name : 'dayu',
											xtype : 'numberfield', // 设置为数字输入框类型
											allowDecimals : true, // 是否允许输入小数
											allowNegative : false, // 是否允许输入负数
											maxValue : 120,
											anchor : '100%'
										}]
							}, {
								columnWidth : .33,
								layout : 'form',
								labelWidth : 60, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [{
											fieldLabel : '项目名称', // 标签
											id : 'prj_name',
											name : 'PRJ_NAME', // name:后台根据此name属性取值
											maxLength : 6, // 可输入的最大文本长度,不区分中英文字符
											anchor : '100%' // 宽度百分比
										}, {
											fieldLabel : '小于',
											name : 'xioayu',
											xtype : 'numberfield', // 设置为数字输入框类型
											allowDecimals : true, // 是否允许输入小数
											allowNegative : false, // 是否允许输入负数
											maxValue : 120,
											anchor : '100%'
										}]
							}, {
								columnWidth : .33,
								layout : 'form',
								labelWidth : 60, // 标签宽度
								defaultType : 'textfield',
								border : false,
								items : [{
											fieldLabel : '承办单位', // 标签
											name : 'PRJ_UT', // name:后台根据此name属性取值
											maxLength : 20, // 可输入的最大文本长度,不区分中英文字符
											anchor : '100%'// 宽度百分比
										}]
							}]
				}],
				buttons : [{
							text : '查询',
							iconCls : 'previewIcon',
							handler : function() {
								Ext.getCmp('otherpage').disable();
								//调用查询方法！
								queryTheForm();
							}
						},  {
							text : '重置',
							iconCls : 'tbar_synchronizeIcon',
							handler : function() {
								qForm.getForm().reset();
							}
						}]
			});

	// 定义自动当前页行号
	var rownum = new Ext.grid.RowNumberer({
				header : 'NO',
				width : 28
			});

	// 定义列模型
	var cm = new Ext.grid.ColumnModel([rownum, {
		header : '项目流水号', // 列标题
		dataIndex : 'prj_sn', // 数据索引:和Store模型对应
		sortable : true,
		hidden:true
			// 是否可排序
		},  
		{
			header:'项目编号',
			dataIndex:'prj_no',
			sortable:true
		},{
		header : '项目名称',
		dataIndex : 'prj_name',
		sortable : true
	},  {
		header : '承办单位',
		dataIndex : 'prj_ut'
	}, {
		header : '项目地块',
		dataIndex : 'prj_massif'
	}, {
		header : '工程费用',
		dataIndex : 'bud_prj_cost',
		width : 60
	}, {
		header : '项目背景',
		dataIndex : 'prj_bg',
		hidden:true
	}, {
		header : '项目状态',
		dataIndex : 'prj_status',
		hidden:true
	}, {
		header : '前期费用',
		dataIndex : 'bud_eraly_cost',
		hidden:true
	}, {
		header : '征地费用',
		dataIndex : 'bud_expr_cost',
		hidden:true
	}, {
		header : '补偿费用',
		dataIndex : 'bud_cps_cost',
		hidden:true
	}
	, {
		header : '其他费用',
		dataIndex : 'bud_oth_cost',
		hidden:true
	}]);

	/**
	 * 数据存储
	 */
	var store = new Ext.data.Store({
				// 获取数据的方式
				proxy : new Ext.data.HttpProxy({
							url : 'fjglDemo.ered?reqCode=querySfxm'
						}),
				reader : new Ext.data.JsonReader({
							totalProperty : 'TOTALCOUNT', // 记录总数
							root : 'ROOT' // Json中的列表数据根节点
						}, [{
									name : 'prj_sn' // Json中的属性Key值
								},  {
									name:'prj_no'
								},{
									name : 'prj_name'
								}, {
									name : 'prj_ut'
								}, {
									name : 'prj_massif'
								}, {
									name : 'bud_prj_cost'
								}, {
									name : 'prj_bg'
								}, {
									name : 'prj_status'
								}, {
									name : 'bud_eraly_cost'
								}, {
									name : 'bud_expr_cost'
								}, {
									name : 'bud_cps_cost'
								}, {
									name : 'bud_oth_cost'
								}])
			});
	// 每页显示条数下拉选择框
	var pagesize_combo = new Ext.form.ComboBox({
				name : 'pagesize',
				triggerAction : 'all',
				mode : 'local',
				store : new Ext.data.ArrayStore({
							fields : ['value', 'text'],
							data : [[10, '10条/页'], [20, '20条/页'],
									[50, '50条/页'], [100, '100条/页'],
									[250, '250条/页'], [500, '500条/页']]
						}),
				valueField : 'value',
				displayField : 'text',
				value : '20',
				editable : false,
				width : 85
			});
	var number = parseInt(pagesize_combo.getValue());
	// 改变每页显示条数reload数据
	pagesize_combo.on("select", function(comboBox) {
				bbar.pageSize = parseInt(comboBox.getValue());
				number = parseInt(comboBox.getValue());
				store.reload({
							params : {
								start : 0,
								limit : bbar.pageSize
							}
						});
			});

	// 分页工具栏
	var bbar = new Ext.PagingToolbar({
				pageSize : number,
				store : store,
				displayInfo : true,
				displayMsg : '显示{0}条到{1}条,共{2}条',
				plugins : new Ext.ux.ProgressBarPager(), // 分页进度条
				emptyMsg : "没有符合条件的记录",
				items : ['-', '&nbsp;&nbsp;', pagesize_combo]
			});

	// 表格工具栏
	var tbar = new Ext.Toolbar({
				items : [{
							text : '项目附件管理',
							iconCls : 'addIcon',
							id : 'otherpage',
							disabled:true,
							handler : function() {
								//跳转页面
								forwardother();
							}
						}
				, '->', {
					text : '刷新',
					iconCls : 'arrow_refreshIcon',
					handler : function() {
					//从新加载数据，查询条件不变！
						store.reload();
						Ext.getCmp('otherpage').disable();
					}}
				]
						
			});


	// 表格实例
	var grid = new Ext.grid.GridPanel({
				// 表格面板标题,默认为粗体，我不喜欢粗体，这里设置样式将其格式为正常字体
				title : '<span class="commoncss">项目基本信息</span>',
				height : 500,
				id : 'id_grid_sfxm',
				autoScroll : true,
				frame : true,
				region : 'center', // 和VIEWPORT布局模型对应，充当center区域布局
				store : store, // 数据存储
				stripeRows : true, // 斑马线
				cm : cm, // 列模型
				tbar : tbar, // 表格工具栏
				bbar : bbar,// 分页工具栏
				viewConfig : {
	// 不产横向生滚动条, 各列自动扩展自动压缩, 适用于列数比较少的情况
				 forceFit : true
				},
				loadMask : {
					msg : '正在加载表格数据,请稍等...'
				}
			});
	//加载一次，其实就是初始化！
	store.load({
				params : {
					start : 0,
					limit : bbar.pageSize
				}
			});
	
	// 监听行选中事件
	grid.on('rowclick', function(pGrid, rowIndex, event) {
				Ext.getCmp('otherpage').enable();
			});
	
	// 如果把form作为center区域的话,其Height属性将失效。
	var viewport = new Ext.Viewport({
				layout : 'border',
				items : [qForm, grid]
			});
	
	
	function forwardother()
	{
		if (runMode == '0') {
			Ext.Msg.alert('提示', '系统正处于演示模式下运行,您的操作被取消!该模式下只能进行查询操作!');
			return;
		}
		var record = grid.getSelectionModel().getSelected();
		//跳转是将当前的项目编号传递过去！
		document.location=webContext+"/fjgl/fjglDemo.ered?reqCode=fjglLook&prj_sn="+record.data.prj_sn+"&prj_no="+record.data.prj_no;	
	}
	/**
	 * 表单提交(表单自带Ajax提交)
	 */
	function queryTheForm() {
		//得到表单中提交的数据！
		var params = qForm.getForm().getValues();
		params.start = 0;
		params.limit = bbar.pageSize;
		store.load({
					params : params
				});
	}
});